home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / image / sw14b.zip / SIMPWN14.ZIP / simpwn14.doc < prev    next >
Text File  |  1996-10-30  |  72KB  |  2,080 lines

  1.                               
  2.                               
  3.                               
  4.                               
  5.                               
  6.                               
  7.                               
  8.                               
  9.                               
  10.                               
  11.                               
  12.                               
  13.                               
  14.                               
  15.                               
  16.                               
  17.                               
  18.                               
  19.                               
  20.                               
  21.                               
  22.                               
  23.                               
  24.                               Simple Windows 1.4B   
  25.                 Copyright 1994,1995,1996 By Bruce O'Banion
  26.                 A Text graphic I/O engine for Turbo C/C++
  27.  
  28.            Turbo C 2.0and Turbo C++ 1.0 copyrigth 1987-1990 
  29.                       by Borland International Inc.
  30.                MS-DOS 5.0 copyright 1991 byMicrosoft Corp.
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.                       Table of Contense
  56.  
  57.   General Info                                 Page 3
  58.   Registration                                 Page 5
  59.   Support                                      Page 6
  60.   Future                                       Page 7
  61.   Quarks/Hints                                 Page 8
  62.   Fungtions:
  63.       Window                                   Page 9
  64.       Menu                                     Page 13
  65.       Entery                                   Page 15
  66.       Print                                    Page 18
  67.       Screen                                   Page 21
  68.       Music                                    Page 24
  69.       File                                     Page 25
  70.       Init                                     Page 27
  71.       Mouse                                    Page 28
  72.   Legal Stuff                                  Page 32
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.                         
  109.                         General Info
  110.  
  111.    Simple Windows 1.4 is a text graphic orentated Turbo c/c++ 
  112. utilitie. The basic system used is file allocation with a static 
  113. 18k buffering system. This system achieves a small static ram 
  114. usage with vertualy unlimited capacity. Litraly thousands of 
  115. windows, menus, forms, and songs can be used and the libary will 
  116. remain a static 18k ram usage. The libaries are small. ranging 
  117. from less than 35k to max 50k for the large debug libary. The 
  118. libary contains window and menu managment. Both screen and print
  119. form loads. Tone and cord music routines as will as a playsong 
  120. fungtion. There is also file managment for all opening and closing 
  121. operations including pointers. Print management for 60 line by 80 
  122. characters pages is also included as will as a makefile editor for 
  123. the load files. There are two types of libaries, debug and 
  124. nodebug. Swinerrx.lib is the debug libary and contains checks on 
  125. parameters and files and displays error messages on screen. The 
  126. error massage will appear and the fungtion will abort. The massage 
  127. will contain the prarmeter found bad, the funtion it is in and the 
  128. number of the current window. Swinx.lib contains no error 
  129. detection but will return error codes from the fungtions on file
  130. allocation. It is also smaller.
  131.    All fungtions return 0 on success and 1 on failer except cursor 
  132. hide/show All file allocations return -1 on end of file or 
  133. _doserrno on all other fails. Printer fungtions _doserrno on 
  134. failer,3 on time out, and biosprint stats for any other failer and 
  135. 0 for succsess. Mouse21 is a small mouse fungtion library that has 
  136. a graphics cursor as will as the standard text graphics cursor. 
  137. There are defines for left, right and mid button pressed and 
  138. release. Loadcurs() loads one of 8 cursors for graphics cursor. 
  139.  Simptut.c is included for study and you can fell free to use
  140. any of the code included in it.
  141.  Simple Windows libaries were compiled on a 386 clone using Turbo 
  142. C 2.0 and Turbo C++ 1.0. Coprosseser emulation was used.
  143.   SKDEF.H is the special key bios codes (F, ALT, PageUP/DN, 
  144. CURSOR) and should be included if these are to be used.
  145.    Installation is easy just unzip SW14d.ZIP and from that 
  146. directory or disk type install at the prompt. Then follow the 
  147. instructions. Simple Windows can be deinstalled by running 
  148. deinstal.exe from the distribution disk or if zipped unzip to a 
  149. temp directory and run from there the same as install.exe. 
  150. Simpwn14.doc can be read or printed with readocs.exe. It is a text 
  151. file reader/printer and will read or print a text file.
  152.   Makefile is the real heart of simple windows. It is the editor 
  153. for constructing the call files. It has help screens for every 
  154. fungion. All you have to do is cursor to the fungtion and hit F1. 
  155. A help screen will then appear. 
  156.   There are six types of files 5 are for the call files themselves 
  157. (window, menu,screen forms, print forms, and songs). The sixth is 
  158. the scheme file. It is for viewing your graphics for your entire 
  159. program. The current scheme display is also used when creating 
  160. windows and menus. At this point each file must be loaded to be 
  161. able to edit it. So if you were working on a window and you want 
  162. to put a menu in it you must load the menu file and after that 
  163. you want to work on a window you must agian load the window file.
  164.   When all your files are made they then can be call in the 
  165. program saving much coding that would be required to build them 
  166. in the program. This will make your program much smaller and also 
  167. allows you to design your graphics with out using the compiler or 
  168. ,if you use a graphic artist, knowing programing.
  169.   For now the editor is fairly crude but the upgrade will have 
  170. click drag mouse and only a single name for the files will be 
  171. needed. The exstentions and loading will be automatic so you will 
  172. be able to make windows, menus, and forms with out stopping or 
  173. leaving the editor screen.
  174.   Feel free to call me or leave a note of criticism or prase about 
  175. this or any othe part of this utility. Any feedback will be 
  176. greatly appreciated.
  177.    Lfsw14.exe uses the file name of the font file you are loading 
  178. as a parameter. Use system and call lfsw14 font.fnt(or file name) 
  179. to load fonts in the program.
  180.  
  181.    Example:
  182.  
  183.         system("lfsw14 medieval.fnt");
  184.  
  185.    This will load the medieval font and display it.
  186.  
  187.                            
  188.                            
  189.                            
  190.                            
  191.                            
  192.                            
  193.                            
  194.                            
  195.                            
  196.                            
  197.                            
  198.                            
  199.                            
  200.                            
  201.                            
  202.                            
  203.                                
  204.                            
  205.                            
  206.                            
  207.                            
  208.                            
  209.                            
  210.                            
  211.                            
  212.                            
  213.                            
  214.  
  215.                            
  216.                            
  217.                            Registration
  218.  
  219.   Registration gets you the large libaries, phone support for one 
  220. year and your registration fee goes toward future upgrades. 
  221. Registration fee is $50. Print the following form and send it to:
  222.      
  223.             Bruce R. O'Banion
  224.             318 Oak St.
  225.             Modesto CA 95351
  226.    
  227. Or call me at : 209-522-2664
  228.  
  229.  
  230. I will fill any order as soon as posible.
  231.  
  232. Also be sure to include a check or money order. NO CASH PLEASE!
  233. I will fill the order when the check clears. Make checks payable 
  234. to
  235.            Bruce R. O'Banion
  236.     
  237. Name:
  238. Address:   
  239.                   
  240.                 
  241. Phone :
  242.                 
  243. Type of machine:
  244.             
  245. Type of disk   3 1/2 hi
  246. (circule one)  5 1/4 hi
  247.              
  248. Quanity: ______               Amount inclosed: _________
  249.                    
  250.                                        
  251.                              Sign here _________________________
  252.                               
  253.                               
  254.                               
  255.                               
  256.                               
  257.                               
  258.                               
  259.                               
  260.                               
  261.                               
  262.                               
  263.                               
  264.                               
  265.                               
  266.                               
  267.                               
  268.                               
  269.                               
  270.                               
  271.                               Support
  272.  
  273. I will be avalible for tech support at this address:
  274.      
  275.            Bruce R. O'Banion
  276.            318 Oak St.
  277.            Modesto CA. 95351
  278.        
  279.            Phone: 209-522-2664  (24hr answer machine)
  280.      
  281. Or on the internet 103675,152@compuserve.com
  282.  
  283. Home page: http://ourworld.compuserve.com/homepages/ob_won_can_ob
  284.                              
  285. Compuserve CIS:ASPFORUM                             
  286.                              
  287.                              
  288.                              
  289.                              
  290.                              
  291.                              
  292.                              
  293.                              
  294.                              
  295.                              
  296.                              
  297.                              
  298.                              
  299.                              
  300.                              
  301.                              
  302.                              
  303.                              
  304.                              
  305.                              
  306.                              
  307.                              
  308.                              
  309.                              
  310.                              
  311.                              
  312.                              
  313.                              
  314.                              
  315.                              
  316.                              
  317.                              
  318.                              
  319.                              
  320.                              
  321.                              
  322.                              
  323.                              
  324.                              
  325.                          The Future
  326.  
  327.    The future looks bright for simple windows. I plan for more 
  328. music cords and styles, 4 screens modes, a better makefile editor, 
  329. more enteries like float and double. I am also working on a full 
  330. screen editor as a single call. There will be complete window 
  331. management, editing, and moves. Also Dual screen fonts with full 
  332. font editing. There will be 16 out of 64 colors in EGA and over 
  333. 200k in VGA. Last but not least more ASM code for speed and size 
  334. and more.
  335.    Later still I plan to take this system to full graphics and i/o 
  336. control for a complete i/o utilitie. Agian the system will remain 
  337. small and static for easy programming. If you have suggestions 
  338. feel free to contact me.
  339.  
  340. Email 103675.152@compuserve.com
  341.  
  342. Or see my web page and the other Simply Soft products:
  343.   http://ourworld.compuserve.com/homepages/ob_won_can_ob
  344.  
  345.  
  346.                              
  347.                              
  348.                              
  349.                              
  350.                              
  351.                              
  352.                              
  353.                              
  354.                              
  355.                              
  356.                              
  357.                              
  358.                              
  359.                              
  360.                              
  361.                              
  362.                              
  363.                              
  364.                              
  365.                              
  366.                              
  367.                              
  368.                              
  369.                              
  370.                              
  371.                              
  372.                              
  373.                              
  374.                              
  375.                              
  376.                              
  377.                              
  378.                              
  379.                              Quarks               
  380. SIMPLE WINDOWS:
  381.     When compiling small debug libary a text overflow may occur. 
  382.     Change to the large debug libary and compile tell error free 
  383.     then try the small nondebug libary.
  384.              
  385.     Read/write_file may show suspicious pointer error but comform 
  386.     to "The C Programing Language" by Kerningham and Ritchie.      
  387.  
  388.  
  389.                             Hints
  390. Makefile:
  391.     When using the screen editor layout all the coordenents on
  392.     graph paper then enter them as you have layed them out.
  393.  
  394.     Make all windows and menus in order (window 1,menu 1,window
  395.     2, ect ...). This will show your scheme as it will apear in
  396.     your program.
  397.  
  398.     For songs also lay them out on paper then enter them.
  399.  
  400. Mouse 21:
  401.     A debugging tip with Mouse21 is to have a key entery in the 
  402.     mouse loop because there is no handler so you can't see the 
  403.     mouse cursor from the screen. To do it in simptut just 
  404.     remove the bioskey(1) if statment. This will make the loop 
  405.     stop and look for key entery at the bioskey(0) call.
  406.  
  407.     The mouse functions were yested on Logitc Mouse and my not be
  408.     fully compatable with Micro Soft Mouse.
  409.                            
  410.                            
  411.                            
  412.                            
  413.                            
  414.                            
  415.                            
  416.                            
  417.                            
  418.                            
  419.                            
  420.                            
  421.                            
  422.                            
  423.                            
  424.                            
  425.                            
  426.                            
  427.                            
  428.                            
  429.                            
  430.                            
  431.                            
  432.                            
  433.                         Window Functions
  434.                           
  435.                           simp_window()
  436. ----------------------------------------------------------------
  437.    Simp_window() is the basic window fungtion. It dose not mask 
  438. so what is on screen a the time of call is lost. If you study the 
  439. simptut code you will see that I use simp_window() as a base 
  440. window and with mouse along with a screen save. 
  441.    The parameters for this fungtion are the corner coordinates 
  442. left, top, right, bottom. The boarder and shadow styles are next. 
  443. Then come the text attributes foreground and back ground. Next is 
  444. the shadow location. After that come the shadow attributes fore 
  445. and back. Last the boarder character if needed and the fill 
  446. character.
  447.    The window coordinates are from 1 to 80 for left and right and 
  448. 1 to 25 for top and bottom. Boarder styles are 0 through 5: 0 for 
  449. no boarder, 1 for single, 2 for double, 3 and 4 for single/double 
  450. line, and 5 for any ASCII character boarder. Shadow style are 0 
  451. through 3: 0 for no shadow, 1 for wide shadow, and 3 for narrow 
  452. shadow.
  453.    Color attributes for text and shadows are standard text colors 
  454. 0 to 15. Colors 8 to 15 in the back ground set the blink bit. The 
  455. shadow locations are 1 to 4 (see simpwn12.h for defines). And last 
  456. the borader and fill characters are any ASCII code 0 through 255.
  457.  
  458.    Example:
  459.  
  460.           simp_window(20,5,60,20,5,2,14,4,1,8,0,170,190);
  461.  
  462.    This will display a window 40 x 15 with a boarder of character 
  463.    190 with a narrow shadow with yellow text on a red bacground.
  464. ----------------------------------------------------------------
  465.                               popup_window()
  466. ----------------------------------------------------------------
  467.    Popup_window() is the basic mask window call. It has the same 
  468. parameteres as simp_window() except for the first one and that is 
  469. the record or file number. This call will not error if the file 
  470. number is greater than the number of windows initialized but 
  471. after the maxed initialized they must be called in sequince or the 
  472. wrong file number will be saved. Once called it can be called then 
  473. in any sequince. Popup_window() should be called only for windows 
  474. that are not made either by makefile or make_window() since it 
  475. will change the parameters saved for that window. The file number 
  476. can be defined as a name (est. QUIT_WIN) using a define statement.
  477.          
  478. Example:
  479.    Popup_window(31,20,10,60,12,1,2,7,0,1,8,0,0,0);
  480.  
  481.    This will display window 31 that is 40 x 3 with a single 
  482.    boarder, narrow shadow and lightgray characters on a black 
  483.    background.
  484. ----------------------------------------------------------------
  485.                               
  486.                               
  487.                     Window Fungtions          
  488.                                     
  489.                               make_window()
  490. ----------------------------------------------------------------
  491.      Make_window() is a nondisplay call and has the same 
  492. parameters as popup_window(). It is used to make a window in the 
  493. program rather than in the makefile. It only saves the parameters 
  494. to a file number and call_window must be used to display the 
  495. window. This call will error if the file number is greater than 
  496. the max number of windows initialized. 
  497.  
  498. Example:
  499.      make_window(3,20,10,60,15,1,2,15,1,1,8,0,0,0);
  500.  
  501.      This call will make a window in the win.dat file at record 3 
  502.      that is 40 x 6 with a single boarder, narrow shadow, and 
  503.      white characters on a blue background.
  504. ----------------------------------------------------------------
  505.                                call_window()
  506. ----------------------------------------------------------------
  507.     Call_window() displays a already made window. It has only one 
  508. parameter the file number. It will error if the file number 
  509. exceeds the max windows initialized. Call_window can be call at 
  510. any time for a window aready created with make_window() or 
  511. MAKEFILE. If it is called more than once with out an 
  512. uncall_window() the masking info will be lost and only the last 
  513. calls mask is saved. This will be improved in the upgrade so that 
  514. no info is lost and calls can be make at any time with out worry.
  515.            
  516. Example:
  517.    call_window(4);
  518.  
  519.    This will call window 4 from the win.dat file.
  520. ----------------------------------------------------------------
  521.                             uncall_window()
  522. ----------------------------------------------------------------
  523.    Uncall_window() restores the screen info save by the last call 
  524. to call_window() for a particular file number. It has like 
  525. call_window() only one parameter the file number.
  526.              
  527. Example:
  528.    uncall_window(4);
  529.  
  530.    This will uncall window 4.
  531. ----------------------------------------------------------------
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.                      Window Fungtions
  542.  
  543.                      unpopup_window()
  544. ----------------------------------------------------------------
  545.    unpopup_window() is the uncall fungtion for popup_window and 
  546. acts the same. It has only one parameter, the file number.
  547.          
  548. Example:
  549.    unpopup_window(31);
  550.  
  551.    This will unpopup window 31.
  552. ----------------------------------------------------------------
  553.                       clear_window()
  554. ----------------------------------------------------------------
  555.    Clear_window() will clear and fill the current window with the 
  556. fill character. This can be any ASCII code character.
  557.    
  558. Example:   
  559.    clear_window(0);
  560.     
  561.    This will fill the current window with null or space characters 
  562.    leaving the boarder untouched.
  563. ----------------------------------------------------------------
  564.                                move_window()
  565. ----------------------------------------------------------------
  566.    Move_window() will move the current window's lefttop corner to 
  567. the new x, y coordinates. If the window moves off of the screen 
  568. the fungtion fails and no move is made.
  569.      
  570. Example:
  571.    move_window(10,10);
  572.    
  573.    This moves the current window ,text and all, to the new topleft 
  574.    setting.
  575. ----------------------------------------------------------------
  576.                          load_win_data()
  577. ----------------------------------------------------------------
  578.     Load_win_data loads a file made by makefile so it can be used 
  579. by call_window(). It has a single prameter, the file name as a 
  580. string to be loaded. This fungtion loads a file to the window file 
  581. path chosen with init_window().
  582.          
  583. Example:
  584.    load_win_data("c:\tc\simptut.win");
  585.  
  586.    This will load simptut.win (make with makefile) from directory 
  587.    tc to win.dat.
  588. ----------------------------------------------------------------
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.                       Window Fungtions
  596.  
  597.                        write_window()
  598. ----------------------------------------------------------------
  599.    Write_window() is like printf but has positioning parameters. 
  600. It will fail and abort if a character is out side of the boarder 
  601. of the current win.
  602.    
  603. Examlpe:
  604.    char name[20] = "bruce";
  605.    
  606.    write_window(3,5,"My name is %s",name);
  607.    
  608.    This will display 'My name is bruce' at 3,5 of the current 
  609.    window.
  610. ----------------------------------------------------------------
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.  
  623.  
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.                             Menu Fungtions
  650.                                make_menu()
  651. ----------------------------------------------------------------
  652.    Make_menu() is a nondisplay fungtion to creat menus in program. 
  653. It has 3 parameters, file number, line count, and a string for 
  654. each line. File number is the record number for the menu file. 
  655. This is the record or file number used to save the menu and to 
  656. call it. Line count is the number of lines in the menu. This tells 
  657. how many strings there are to the menu. The max number of lines in 
  658. a menu are 23 of 76 characters each.
  659.       
  660. Example:
  661.    make_menu(2,5,"string 1","string 2","string 3","string 4",
  662.              "string 5");
  663.  
  664.    This will make a menu with strings 1 through 5 and store it in 
  665.    position 2 in menu.dat.
  666. ----------------------------------------------------------------
  667.                              load_menu_text()
  668. ----------------------------------------------------------------
  669.    Load_menu_text() loads the menu file make with makefile into 
  670. the menu data file. It has one parameter, a string for the path 
  671. and name of the file to be loaded.
  672.           
  673. Example:
  674.    load_menu_text("simptut.men");
  675.  
  676.    This will load simptut.men (make with makefile) into menu.dat.
  677. ----------------------------------------------------------------
  678.                              call_menu()
  679. ----------------------------------------------------------------
  680.     Call_menu() displays the menu called by the parameter 
  681. file_num. There are 3 parameters to this call, file number, X 
  682. coordinate, and Y coordinate. The file number is the record number 
  683. for the menu in the menu data file. X and Y coordinates are the 
  684. upper left location in the current window to start displaying the 
  685. menu.  
  686.             
  687. Example:
  688.     call_menu(2,3,3);
  689.  
  690.     This will call menu 2 from menu.dat and display it in the 
  691.     current window strating at coordinates 3, 3.
  692. ----------------------------------------------------------------
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.                         Menu Fungtions
  704.  
  705.                         load_text()
  706. ----------------------------------------------------------------
  707.     Load_text() displays a screen of text 22 lines by 76 
  708. characters max. It displays at coordinates 3,3 of the current 
  709. window. There are to parameters fine number and file name. File 
  710. number is the record number of the text screen to display and 
  711. file name contains the path and name of the text file. The text 
  712. files are the same as the menu files but are used for help 
  713. screens. They are also made the same as menu files with makefile.
  714.       
  715. Example:
  716.    load_text(2,"c:\tc\stuttext.men");
  717.  
  718.    This will display text screen 2 from stuttext.men (made with 
  719.    makefile) in the current window.
  720. ----------------------------------------------------------------
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.                             Entery Fungtions
  758.  
  759.                               get_choice()
  760. ----------------------------------------------------------------
  761.   Get_choice() is a bolian fungtion in that it returns a 1 for 
  762. ture or yes and 0 for fales or no. There are three parameters, X 
  763. and y coordinates for cursor and default display posisioning in 
  764. the current window and the defaut character. This is either T or 
  765. F or Y or N. It returns 2 on failer.
  766.           
  767. Example:
  768.   get_choice(20,3,"Y");
  769.  
  770.   This call will display a Y at coordinates 20, 3 and wait for a 
  771.   return or a y or n and return.
  772. ----------------------------------------------------------------
  773.                                get_int_date()
  774. ----------------------------------------------------------------
  775.    Get_int_date() gets the date in MM/DD/YY format. There are 3 
  776. parameters in this fungtion, a 3 int array for the date and X and 
  777. Y coordenates for positioning in the current window. Array[0] is 
  778. the month, array[1] is the day, and array[2] is the year.
  779.         
  780. Example:
  781.      int date[3];
  782.        
  783.      get_int_date(date,20,3);
  784.  
  785.      This call will display the containts of date in the format 
  786.      date[0]/date[1]/date[2] at 20,3 in the current window and 
  787.      wait for data entery and return.
  788. ----------------------------------------------------------------
  789.                              edit_string()
  790. ----------------------------------------------------------------
  791.    Edit_string() is a full field edit using insert or overstrike. 
  792. The left and right cursor keys are active as are HOME and END. 
  793. Any special key such as F keys, ALT keys, PGUP/PGDN, or UP/DN 
  794. cursor keys are return by the fungtion with the edit string saved. 
  795. This allows edit_string to be used in a full screen editor (see 
  796. simptut demo). The defines for the special keys are in skdef.h 
  797. and should be an include if you use this fungtion. The parameters 
  798. are, a pointer to a string, a format string of format characters,
  799. X and Y coordenates for the display of the string in the current 
  800. window, and a string of special key masking characters. Format 
  801. characters allow only certain characters to be entered and special 
  802. key mask block the use of certain special keys.
  803.  
  804. Example:
  805.   char name[10];
  806.      
  807.   edit_string(name,"*********",3,3,"TCAFP");  
  808.  
  809.   This call displays the containts of name at coordinates 3, 3 
  810.   and will mask out tabs,up/dn cursor,up/dn page,F and ALT keys 
  811.                          Entery Fungtions
  812.  
  813.   and control charaters. The containts of name can be edited with 
  814.   insert/overstrike and left/right cursor 
  815.  
  816.    Format characters:                     Special key masks
  817.                                                    
  818. *  any ascii character                   T  mask out TAB keys
  819. A  alphanumaric character                A  mask out ALT key
  820. U  upper case alpha only                 F  mask out fungtion keys
  821. L  lower case alpha only                 C  mask out CTRL key
  822. u  forced upper case alpha               P  mask out printer 
  823. l  forced lower case alpha                     characters
  824. 9  digits 0 - 9 only                     U  mask out UP/DN cursor 
  825. F  digits 0 - 9, -, . only                    and PGUP/PGDN keys
  826. e  digits 0 - 9, -, ., e, E only              PGUP/PGDN keys
  827. #  digits 0 - 9 and -                    E mask out ESC key
  828. h  digits 0 - 9, a,b,c,d,e.f,A,B,C,D,E,F,- only
  829. o  digits 0 - 7,- only
  830. T  t, T, f, F only
  831. Y  y, Y, n, N only
  832. ----------------------------------------------------------------
  833.                                get_string()
  834. ----------------------------------------------------------------
  835.     Get_string is a standard string entery. It has backspace with 
  836. no cursor or insert. It is masked and formated. It's parameters 
  837. are:pointer to string, a mask string, a format string, X and Y 
  838. coordenets, Mask strip switch, and default display switch. The 
  839. mask string is any ASCII character for and space for a mask, The 
  840. format string is made up of spaces where masked and format 
  841. characters (see edit_string()) for enteries. Both mask and format
  842. must be concestent for proper fungtion. Error detection is in the 
  843. debug lib but masked characters and enteries must match. The srip 
  844. switch is ON for stripping the mask form entery and 0 for the 
  845. masks inclution in entery. The default display switch is ON or 1 
  846. to display what is in the enter string and OFF or 0 for no display 
  847. and mask display. The x y coordinet are for display placement in 
  848. the current window. It returns 27 on ESC. 
  849.  
  850. Example:
  851.    char name[10];
  852.        
  853.    get_string(name,"         ","uAAAAAAAA",3,3,1,1);
  854.  
  855.    This call will display the containts of name at coordinates 3, 
  856.    3, mask all but alph characters and force an uppre case on the 
  857.    first entery. It will strip the mask and if any character but 
  858.    backspace is hit first clear name. It will exit on esc with no 
  859.    data change or return.
  860. ----------------------------------------------------------------
  861.  
  862.  
  863.  
  864.  
  865.                         Entery Fungtions
  866.  
  867.                             get_int()
  868. ----------------------------------------------------------------
  869.     Get_int() is a intiger entery and takes a pointer to int, the 
  870. number of digits including the sign, and X and Y coordinets. Valid 
  871. digit lengths are 1 to 6 with overflow detection. X Y coordinets 
  872. are agian for current window placement of display.
  873.           
  874. Example:
  875.    int number;
  876.          
  877.    get_int(&number,4,3,3);
  878.  
  879.    This call will display the containts of number at coordinates 
  880.    3,3 and wait for 4 digit enteries including - and exit on esc 
  881.    or return.
  882. ----------------------------------------------------------------
  883.                                get_long()
  884. ----------------------------------------------------------------
  885.     Get_long is the same as get_int() only it takes a pointer to 
  886. long. It,s valid digit length is 1 to 10.
  887.                 
  888. Example:
  889.    long int Lnumber;             
  890.          
  891.    get_long(&Lnumber,8,3,2);
  892.  
  893.    This call acts the same as get_int except it takes a long.
  894. ----------------------------------------------------------------
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.                         Print Fungtions
  920.  
  921.                           print_printf()
  922. ----------------------------------------------------------------
  923.    Print_printf() is just like printf() but it goes to a print 
  924. buffer and has the first to parameters, X and Y coordinents, for 
  925. placement on the print page The print page is a 60 line by 80 
  926. character buffer that is printed by print_buff(). 
  927.         
  928. Example:
  929.    int varable = 26;
  930.     
  931.    print_printf(20,25,"Number is %d",varable);
  932.  
  933.    This call will load Number is 26 into the print buffer at 
  934.    coordinates 20, 25.
  935. ----------------------------------------------------------------
  936.                              print_putch()
  937. ----------------------------------------------------------------
  938.    Print_putch(), like print_printf, is the same as putch(). The 
  939. first two parameters, which are X and Y coordinents, are for 
  940. placement. It is used for single character placement such as line 
  941. feeds or carrage returns in the print page and can also be used 
  942. for fancier graphic designs. 
  943.  
  944. Example:
  945.     print_putch(80,30,0x0d);
  946.  
  947.     This call will put character 0x0d at coordinates 80,30 in the 
  948.     print buffer.
  949. ----------------------------------------------------------------
  950.                         print_horizontal_line()
  951. ----------------------------------------------------------------
  952.    Print_horizontal_line has six parameters. The first three are 
  953. the start, middle, and end characters of the line. These are any 
  954. ASCII character 0 to 255. The last three parameters are the start 
  955. X, end X, and y coordinents. X can be 1 to 80 but the start must 
  956. be greater than or equal to the end. Y can be 1 to 60. It like all 
  957. the print fungtions is loaded into the page buffer.
  958.      
  959. Example
  960.    print_horizontal_line(0xc7,0xc4,0xb6,1,80,20);
  961.  
  962.    This call puts a line 80 charaters long in row 20 of the print 
  963.    buffer.
  964. ----------------------------------------------------------------
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.                            Print Fungtions
  974.  
  975.                         print_vertical_line()
  976. ----------------------------------------------------------------
  977.    Print_vertical_line has six paramiters. The first three are 
  978. start, middle and end characters of the line. These are any ASCII 
  979. charaters 0 to 255. The last three parameters are X, start Y, end 
  980. Y. X can be 1 to 80, y is 1 to 60. This is loaded into the page 
  981. buffer for printing later.
  982.     
  983. Example:
  984.   print_vertical_line(0xd2,0xba,0xd0,40,1,60);
  985.  
  986.   This call puts a vertical line in column 40, 60 characters long 
  987.   in the print buffer.
  988. ----------------------------------------------------------------
  989.                             print_window()
  990. ----------------------------------------------------------------
  991.     Print_window() draws a window in the page buffer. It has the 
  992. four window parameters left, top, right, bottom. It also has the 
  993. boarder style and boarder character for ANY_BOARDER. The boarder 
  994. styles are the same as simp_window() and the characters are any 
  995. ASCII code 0 to 255. Windows can be as large as the whole page or 
  996. 80 x 60.
  997.     
  998. Example:
  999.    print_window(1,1,80,60,2,0);
  1000.  
  1001.    This call puts a window 80x60 with a double boarder in the 
  1002.    print buffer.
  1003. ----------------------------------------------------------------
  1004.                              clear_print_buff()
  1005. ----------------------------------------------------------------
  1006.    Clear_print_buff clears the page buffer and loads it with the 
  1007. ASCII code 0x20. It is used when a new form is to be made.
  1008.     
  1009. Example:
  1010.    clear_print_buff();
  1011.  
  1012.    This call clears the print buffer.
  1013. ----------------------------------------------------------------
  1014.                               print_buff()
  1015. ----------------------------------------------------------------
  1016.   Print_buff sends the contents of the page buffer to the printer. 
  1017. All 60 lines will be printed unless you insert a NULL (0x00) 
  1018. character in the page buffer. If a NULL charater is incounterd or 
  1019. all 60 lines are printed the printing will stop and the fungtion 
  1020. will return. 
  1021.  
  1022. Example:
  1023.    print_buff();
  1024.         
  1025.    This sends what is current in the print buff to the printer.
  1026. ----------------------------------------------------------------
  1027.                             Print Fungtions
  1028.                                load_form()
  1029. ----------------------------------------------------------------
  1030.    Load_form() is for loading a premade print form made with 
  1031. makefile into the page buffer. It then can be further edited and 
  1032. printed. The record number and path/filename are the parameters.
  1033.     
  1034. Example:
  1035.   load_form(0,"simptut.prn");
  1036.  
  1037.   This call will load print form 0 from simptut.prn (make with 
  1038.   makefile) to the print buffer.
  1039. ----------------------------------------------------------------
  1040.                              print_char()
  1041. ----------------------------------------------------------------
  1042.    Print_char() sends a charater to the printer and prints it. It 
  1043. takes a ASCII character code 0 thru 255.
  1044.  
  1045. Example:
  1046.    print_char(0x0c);   
  1047.       
  1048.    This will send a form feed to the printer.
  1049. ----------------------------------------------------------------
  1050.  
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.                          Screen Fungtions
  1082.  
  1083.                        draw_horizontal_line()
  1084. ----------------------------------------------------------------
  1085.    Draw_hoizontal_line() will put a horizontal line stating at 
  1086. start_x, y and end on end_x, y. The three character paramiters 
  1087. are: start, middle, end. These can be any ASCII code charater.
  1088.      
  1089. Example:
  1090.     draw_horizontal_line(0x101,0x102,0x103,3,50,10);
  1091.      
  1092.     This will draw a line (ABBBBBB...BBBBBBBC) at 3,10 to 50,10.
  1093. ----------------------------------------------------------------
  1094.                                  draw_vertical_line()
  1095. ----------------------------------------------------------------
  1096.    Draw_vertical_line() is the same as hoizontal line except it 
  1097. takes x, start_y,end_y.
  1098.            
  1099.    Example:
  1100.      draw_vertical_line(0x101,0x102,0x103,20,3,20); 
  1101.  
  1102.      This will draw line  A  at 20,3 to 20,20.
  1103.                           B
  1104.                           B
  1105.                          ...
  1106.                           B
  1107.                           B
  1108.                           C
  1109. ----------------------------------------------------------------
  1110.                                show_cursor()
  1111. ----------------------------------------------------------------
  1112.    Show_cursor() will display the IBM cursor.
  1113.    
  1114.    Example:
  1115.    show_cursor();
  1116.    
  1117.    This will display the blinking IBM cursor.
  1118. ----------------------------------------------------------------
  1119.                             hide_cursor()
  1120. ----------------------------------------------------------------
  1121.    Hide_cursor() turns the IBM cursor off.
  1122.    
  1123.    Example:
  1124.      hide_cursor();
  1125.     
  1126.      This will hide or turn of the IBM cursor display.
  1127. ----------------------------------------------------------------
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.                          Screen Fungtions
  1136.                           move_cursor()
  1137. ----------------------------------------------------------------
  1138.    Move_cursor() will move the cursor in the current window. If 
  1139. the cursor is moved beyond the current window the fungtion will 
  1140. fail and no move will be made.
  1141.    
  1142. Example:
  1143.   move_cursor(3,10);
  1144.    
  1145.   This will position the cursor at window coordinates 3,10 in the 
  1146.   current window.
  1147. ----------------------------------------------------------------
  1148.                               load_screen_form()
  1149. ----------------------------------------------------------------
  1150.   Load_screen_form loads a ready made form (mode with makefile) 
  1151. to the current window. The form will turnkate beyond the inner 
  1152. window parameters. A record number and a file name are called for.
  1153.    
  1154. Example:
  1155.    load_screen_form(0,"simptut.scr");
  1156.    
  1157.    This will load the simptut title screen into the current window.
  1158. ----------------------------------------------------------------
  1159.                                  read_text()
  1160. ----------------------------------------------------------------
  1161.    Read_text() will display a text file in the current window 
  1162. trunkating or wrapping around with page up/dn. It will exit with 
  1163. ESC.
  1164.   
  1165. Example:
  1166.    read_text("mou.doc",1);
  1167.     
  1168.    This will display the text of mou.doc page by page int the 
  1169.    current window with wraparound.
  1170. ----------------------------------------------------------------
  1171.                              save_screen()
  1172. ----------------------------------------------------------------
  1173.    Save_screen() will save the current screen to screen save file 
  1174. at the designated record number.
  1175.   
  1176. Example:
  1177.    save_screen(2);
  1178.    
  1179.    This saves the current screen to record number 2 in screen.dat.
  1180. ----------------------------------------------------------------
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.                           Screen Fungtions
  1190.  
  1191.                             load_screen()
  1192. ----------------------------------------------------------------
  1193.    Load_screen() is the other half of screen save and works the 
  1194. same.
  1195.    
  1196. Example:   
  1197.    
  1198.    load_screen(2);
  1199.    
  1200.    This will load the screen record 2 from screen.dat and display 
  1201.    it.
  1202. ----------------------------------------------------------------
  1203.                            save_screen_buff()
  1204. ----------------------------------------------------------------
  1205.    Save_screen_buff() saves the current screen to a ram buffer. 
  1206. It is for use with a mouse or when a fast screen display is 
  1207. needed.
  1208.    
  1209. Example:
  1210.    save_screen_buff();
  1211.   
  1212.    This will save the current screen to ram.
  1213. ----------------------------------------------------------------
  1214.                            load_screen_buff()
  1215. ----------------------------------------------------------------
  1216.    Load_screen_buff() will display the save screen buffer.
  1217.   
  1218. Example:  
  1219.    load_screen_buff();
  1220.    
  1221.    This will display the screen in save screen buffer.
  1222. ----------------------------------------------------------------
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.                           Music Fungtions
  1244.  
  1245.                             set_tempo()
  1246. ----------------------------------------------------------------
  1247.   Set_tempo() sets the speed or tempo of each note. The settings 
  1248. are in milli seconds.
  1249.    
  1250. Example:
  1251.    set_tempo(1000);
  1252.    
  1253.    This sets the duration of a quarter note at 1 second.
  1254. ----------------------------------------------------------------
  1255.                                tone()
  1256. ----------------------------------------------------------------
  1257.    Tone sounds a single note. It takes the note (A thru Ab), the 
  1258. size of the note (64,32,16,8,4,2,1), and the octive (0 thru 7). 
  1259. Zero being no sound.
  1260.    
  1261. Example:
  1262.    tone(Cs,4,3); (alternate tone(5,4,3);)
  1263.    
  1264.    This sounds a C# quarter note in the second octive above A55.
  1265. ----------------------------------------------------------------
  1266.                             cord()
  1267. ----------------------------------------------------------------
  1268.    Cord() sounds a 4 note arpagio cord. It takes the root note 
  1269. (A thru Ab), the duration of the cord (8,4,2,1), and the cord 
  1270. (M, M7, 7, m, m7).
  1271.     
  1272. Example:
  1273.    cord(Cs,1,MINOR); (alternate cord(5,1,"m");)
  1274.    
  1275.    This sounds a C# minor cord for one whole note.
  1276. ----------------------------------------------------------------
  1277.                              playsong()
  1278. ----------------------------------------------------------------
  1279.   Playsong() will play a song file (made with makefile) returning 
  1280. 0 if no key is struck before the end of the file or a 1 if a key 
  1281. is entered.
  1282.    
  1283. Example:
  1284.    while(playsong("simptut.sng") == 0){}
  1285.    
  1286.    This will play simptut.sng tell a key is struck.
  1287. ----------------------------------------------------------------
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.                           File Fungtions
  1298.                             read_file()
  1299. ----------------------------------------------------------------
  1300.    Read_file() reads a block of bytes from a file. Parameters are: 
  1301. buff for the bytes read, file path and name, block size in bytes 
  1302. (int), byte to start read (long int). 
  1303.  
  1304. Example:
  1305.    read(buff,"simptut.win",2000,4056L);
  1306.    
  1307.    This will read the first 2000 bytes of file simptut.win stating 
  1308.    at byte 4056 into buff.
  1309. ----------------------------------------------------------------
  1310.                              write_file()
  1311. ----------------------------------------------------------------
  1312.    Write file is the same as read file only it writes buff into 
  1313. the file.
  1314.    
  1315. Example:
  1316.    write_file(buff,"simptut.win",2000,4056L);
  1317.    
  1318.    This will write the containts of buff into the first 2000 bytes 
  1319.    of the file simptut.win starting at byte 4056.
  1320. ----------------------------------------------------------------
  1321.                             file_to_file()
  1322. ----------------------------------------------------------------
  1323.    File_to_file copies a block of bytes from one file to another. 
  1324. It takes a buffer the size of the block, a source file, its start 
  1325. byte, a destination file, its start byte, and the size of the 
  1326. block. 
  1327.  
  1328. Example:
  1329.    char buff[2000];
  1330.    
  1331.    file_to_file(buff,"simptut.win",4056L,"win.dat",0L,2000);
  1332.    
  1333.    This will copy the first 2000 bytes of simptut.win starting at 
  1334.    byte 4056 to win.dat starting at 0 bytes.
  1335. ----------------------------------------------------------------
  1336.                                copy_file()
  1337. ----------------------------------------------------------------
  1338.    Copy file() copies one file to another. It takes the 
  1339. destination file and source file. If there is no destination file 
  1340. it will attempt to creat one.
  1341.      
  1342. Example:
  1343.    copy_file("simptut.win","win.dat");
  1344.    
  1345.    This will copy simptut.win to win.dat.
  1346. ----------------------------------------------------------------
  1347.  
  1348.  
  1349.  
  1350.  
  1351.                           File Fungtions
  1352.  
  1353.                            creat_file()
  1354. ----------------------------------------------------------------
  1355.    Creat_file() will creat a file if one dose not exist. It takes 
  1356. the file name and path.
  1357.     
  1358. Example:
  1359.    creat_file("win.dat");
  1360.    
  1361.    This will creat a file called win.dat if one dose not exist.
  1362. ----------------------------------------------------------------
  1363.                                read_directory()
  1364. ----------------------------------------------------------------
  1365.    Read_directory() reads the files in a directory an loads buff 
  1366. with thier names. It takes the buffer, the number of names, and 
  1367. the full path/file name (*.text).
  1368.    
  1369. Example:
  1370.    char buff[20][13];
  1371.    
  1372.    read_directory(buff,20,"*.text");
  1373.    
  1374.    This will read the current directory and load buff with the 
  1375.    first 20 text files found. This can then be displayed for 
  1376.    selection.
  1377. ----------------------------------------------------------------
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.                           Init Fungtions
  1406.  
  1407.                            init_window()
  1408. ----------------------------------------------------------------
  1409.    Init_window() initializes the temp files and mallocs the 
  1410. buffering. It's parameters are the number of windows, menus, and 
  1411. screen saves, the drive to use (a ram disk can be used), and 
  1412. selects the LP port to use.
  1413.    
  1414. Example:
  1415.    init_window(20,20,5,"D",1);
  1416.    
  1417.    This will init the utilitie to use 20 windows, 20 menus, 5 
  1418.    screen saves, drive D, and LP port 1.
  1419. ----------------------------------------------------------------
  1420.                             uninit_window()
  1421. ----------------------------------------------------------------
  1422.    Uninit_window() will delete the temp files and free any 
  1423. malloced buffers.
  1424.    
  1425. Example:
  1426.    uninit_window();   
  1427.  
  1428.    This call frees malloc memory and removes the temp files.
  1429. ----------------------------------------------------------------
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.                           Mouse Fungtions
  1460.  
  1461.                            mouinstalled()
  1462. ----------------------------------------------------------------
  1463.   Mouinstalled() returns the number of buttons if the mouse driver 
  1464. is present or 0 if no driver found. 
  1465.    
  1466.   Eample:
  1467.    
  1468.         mouinstalled();
  1469.    
  1470.   This will check for mouse driver and return a the number of 
  1471.   buttons if found.
  1472. ----------------------------------------------------------------
  1473.                              moureset()
  1474. ----------------------------------------------------------------
  1475.    Moureset() resets the mouse driver and should be used when 
  1476. mouinstalled finds a driver and when exiting the program.
  1477.    
  1478.    Example:
  1479.     
  1480.         moureset();
  1481.    
  1482.    This will reset the mouse driver.
  1483. ----------------------------------------------------------------
  1484.                             moubuttonpressed()
  1485. ----------------------------------------------------------------
  1486.   Moubuttonpressed() takes the number of the button that you want 
  1487. to check (0 LEFTBUTTON, 1 RIGHTBUTTON, 2 MIDBUTTON) and returns 
  1488. the number of times the button was pessed since last checked.   
  1489.  
  1490.   Example:
  1491.    
  1492.         if(moubuttonpressed(0))
  1493.         {   
  1494.                read_text("mouse.doc",0); 
  1495.         }
  1496.    
  1497.   This will read the mouse docs if the LEFTBUTTON is pressed.
  1498. ----------------------------------------------------------------
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.                           Mouse Fungtions
  1514.  
  1515.                             mou_on()
  1516. ----------------------------------------------------------------
  1517.    Mou_on() displays the graphic mouse cursor and must be call 
  1518. each time the mouse is moved.
  1519.    
  1520.    Example:
  1521.     
  1522.    int moux,mouy,oldx = -1,oldy = - 1;
  1523.     
  1524.    for(;;)
  1525.    {
  1526.             mouposition(&moux,&mouy);
  1527.             if((oldx != moux) | (oldy != mouy))
  1528.             {
  1529.                      oldx = moux;
  1530.                      oldy = mouy;
  1531.                      mou_on();
  1532.                      if(moubuttonpressed)
  1533.                      {
  1534.                               break;
  1535.                      }
  1536.              }
  1537.    }
  1538.  
  1539.    This shows the mouse graphics cursor till a button is pressed.
  1540. ----------------------------------------------------------------
  1541.                              mou_off()
  1542. ----------------------------------------------------------------
  1543.   Mou_off() is called once to shutoff the mouse graphics cursor. 
  1544. A call to mou_on() is needed after that to display the cursor.
  1545.  
  1546.   Example:
  1547.    
  1548.        mou_off();
  1549.    
  1550.   This will shut the cursor off.
  1551. ----------------------------------------------------------------
  1552.                                mouhide()
  1553. ----------------------------------------------------------------
  1554.   Mouhide() hides the standard mouse cursor for text.
  1555.     
  1556.   Example:
  1557.   
  1558.        mouhide();
  1559.    
  1560.   The standard mouse cursor will be hidden.
  1561. ----------------------------------------------------------------
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.                         Mouse Fungtions
  1568.  
  1569.                            moushow()
  1570. ----------------------------------------------------------------
  1571.    Moushow() shows thw standard mouse cursor and nedds to be 
  1572. called only once after a mouhide().
  1573.    
  1574.    Example:
  1575.    
  1576.         moushow();
  1577.     
  1578.    This will show the standard mouse cursor.
  1579. ----------------------------------------------------------------
  1580.                           mousetposition()
  1581. ----------------------------------------------------------------
  1582.    Mousetposition() puts the mouse cursor and mouse at the x, y 
  1583. coordenents int the paramiters.
  1584.    
  1585.    Example:
  1586.     
  1587.         mousetposition(5,5);
  1588.    
  1589.    This will place the mouse at coordenets 5,5 on the screen.
  1590. ----------------------------------------------------------------
  1591.                             mousetmaxposition()
  1592. ----------------------------------------------------------------
  1593.    Mousetmaxposition() sets the mouse coordinent limits. It takes 
  1594. four parameters menx, maxx, meny, maxy.
  1595.   
  1596.    Example:
  1597.     
  1598.         mousetmaxposition(5,20,5,20);
  1599.    
  1600.    This will confine mouse movment to a window(5,5,20,20).
  1601. ----------------------------------------------------------------
  1602.                           moubuttonrelease()
  1603. ----------------------------------------------------------------
  1604.    Moubuttonrelease() takes the number of the button to check (0 
  1605. LEFTBUTTON, 1 RIGHTBUTTON, 2 MIDBUTTON) and returns the number of 
  1606. times that button was released since last checked.   
  1607.  
  1608.    Example:
  1609.    
  1610.    for(;;)
  1611.    {
  1612.          if(moubuttonrelease(2))
  1613.          {
  1614.                 break;
  1615.          }
  1616.    }
  1617.     
  1618.    This will remain in the loop until the MIDBUTTON is pressed 
  1619.    and released.
  1620. ----------------------------------------------------------------
  1621.                            Mouse Fungtions
  1622.                              loadcurs()
  1623. ----------------------------------------------------------------
  1624.    Loadcurs() loads the graphic cursor. It taes the file name and 
  1625. an int 0 to 31.
  1626.    
  1627.    Example:
  1628.    
  1629.         loadcurs("cursor.fnt",3);
  1630.     
  1631.    This will load the forth character in the file cursor.fnt for 
  1632.    use with mou_on and mou_off.
  1633. ----------------------------------------------------------------
  1634.                              mouposition()
  1635. ----------------------------------------------------------------
  1636.    Mouposition() returns the mouse position in the parameters *x, 
  1637. *y.
  1638.    
  1639.    Example:
  1640.    
  1641.    int x,y;
  1642.    
  1643.           mouposition(&x,&y);
  1644.     
  1645.    This will put the current mouse position in the ints x and y.
  1646. ----------------------------------------------------------------
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.                     DEFINITION OF SHAREWARE
  1676.  
  1677.       Shareware distribution gives users a chance to try software
  1678.    before buying it. If you try a Shareware program and continue
  1679.    using it, you are expected to register. Individual programs
  1680.    differ on details -- some request registration while others
  1681.    require it, some specify a maximum trial period. With
  1682.    registration, you get anything from the simple right to 
  1683.    continue using the software to an updated program with printed 
  1684.    manual.
  1685.  
  1686.       Copyright laws apply to both Shareware and commercial 
  1687.    software, and the copyright holder retains all rights, with a 
  1688.    few specific exceptions as stated below. Shareware authors are 
  1689.    accomplished programmers, just like commercial authors, and the 
  1690.    programs are of comparable quality. (In both cases, there are 
  1691.    good programs and bad ones!) The main difference is in the 
  1692.    method of distribution. The author specifically grants the 
  1693.    right to copy and distribute the software, either to all and 
  1694.    sundry or to a specific group. For example, some authors 
  1695.    require written permission before a commercial disk vendor may 
  1696.    copy their Shareware.
  1697.  
  1698.       Shareware is a distribution method, not a type of software. 
  1699.    You should find software that suits your needs and pocketbook,
  1700.    whether it's commercial or Shareware. The Shareware system 
  1701.    makes fitting your needs easier, because you can try before you 
  1702.    buy. And because the overhead is low, prices are low also. 
  1703.    Shareware has the ultimate money-back guarantee -- if you don't 
  1704.    use the product, you don't pay for it.
  1705. **************************************************************** 
  1706.    This file contains important license information regarding the
  1707.    use of Simple Windows, Version 1.4B.  This information applies 
  1708.    to individual users who wish to pass copies out to friends and
  1709.    associates.
  1710.  
  1711.  
  1712.      PLEASE!  Show your support for Shareware by registering the
  1713.      programs you actually use.  Simply Soft depends upon and
  1714.      needs your support.  Thank you!
  1715.  
  1716.  
  1717.     Trial Use License:
  1718.     ~~~~~~~~~~~~~~~~~~
  1719.     Simple Windows is NOT a public domain program.  It is Copyright
  1720.     (c) 1994, 1995, 1996 by Bruce O'Banion.  All rights reserved.
  1721.     This software and accompanying documentation are protected by
  1722.     United States Copyright law and also by International Treaty
  1723.     provisions.  Any use of this software in violation of Copyright
  1724.     law or the terms of this limited license will be prosecuted to
  1725.     the best of our ability.  The conditions under which you may 
  1726.     copy this software and documentation are clearly outlined below 
  1727.     under "Distribution Restrictions".
  1728.  
  1729.     Bruce O'Banion hereby grants you a limited license to use this
  1730.     software for evaluation purposes for a period not to exceed 
  1731.     Thirty (30) days.  If you intend to continue using this 
  1732.     software (and/or it's documentation) after the Thirty (30) day 
  1733.     evaluation period, you MUST make a registration payment to 
  1734.     Bruce R. O'Banion.
  1735.  
  1736.            - Simple Windows, Version 1.4B - LICENSE.DOC -
  1737.  
  1738.  
  1739.     Using this software after the thirty (30) day evaluation period
  1740.     without registering the software is a violation of the terms of
  1741.     this limited license.
  1742.  
  1743.     Licensee shall not use, copy, rent, lease, sell, modify,
  1744.     decompile, disassemble, otherwise reverse engineer, or transfer
  1745.     the licensed program except as provided in this agreement.  Any
  1746.     such unauthorized use shall result in immediate and automatic
  1747.     termination of this license.
  1748.  
  1749.     All rights not expressly granted here are reserved to Simply 
  1750.     Soft.
  1751.  
  1752.  
  1753.     Limited Distribution License:
  1754.     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1755.     As the copyright holder for Simple Windows, Bruce R. O'Banion
  1756.     authorizes distribution by individuals only in accordance with
  1757.     the following restrictions.
  1758.  
  1759.     Individuals are hereby granted permission by Bruce R. O'Banion 
  1760.     to copy the Simple Windows diskette for their own use (for
  1761.     evaluation purposes) or for other individuals to evaluate, ONLY
  1762.     when the following conditions are met.
  1763.  
  1764.     The Simple Windows package is defined as containing all the
  1765.     material listed in the PACKING.LST text file.  If any files
  1766.     listed in the PACKING.LST text file, or the PACKING.LST file
  1767.     itself, are missing, then the package is not complete and
  1768.     distribution is forbidden.  Please contact us to obtain a
  1769.     complete package suitable for distribution.
  1770.  
  1771.     o  The Simple Windows package - including all related program
  1772.        files and documentation files - CANNOT be modified in any
  1773.        way and must be distributed as a complete package, without
  1774.        exception.  The PACKING.LST text file contains a list of
  1775.        all files that are part of the Simple Windows package.
  1776.  
  1777.     o  No price or other compensation may be charged for the
  1778.        Simple Windows package.  A distribution cost may be
  1779.        charged for the cost of the diskette, shipping and
  1780.        handling, as long as the total (per disk) does not exceed
  1781.        US$10.00 in the U.S. and Canada, or US$15.00
  1782.        internationally.
  1783.  
  1784.     o  The Simple Windows package CANNOT be sold as part of some
  1785.        other inclusive package.  Nor can it be included in any
  1786.        commercial software packaging offer, without a written
  1787.        agreement from Bruce R. O'Banion.
  1788.  
  1789.     o  The User's Guide may not be reproduced in whole or
  1790.        in part, using any means, without the written permission
  1791.        of Bruce R. O'Banion.  In other words, the disk-based
  1792.        documentation may not be distributed in PRINTED (hardcopy)
  1793.        form.
  1794.  
  1795.     o  The Simple Windows package cannot be "rented" or "leased"
  1796.        to others.
  1797.  
  1798.     o  Licensee shall not use, copy, rent, lease, sell, modify,
  1799.        decompile, disassemble, otherwise reverse engineer, or
  1800.        transfer the licensed program except as provided in this
  1801.        agreement.  Any such unauthorized use shall result in
  1802.        immediate and automatic termination of this license.
  1803.  
  1804.     All rights not expressly granted here are reserved to Bruce R.
  1805.     O'Banion
  1806.  
  1807.  
  1808. -------------------------------------------------------------------
  1809.                 Distribution Requirements VENDORS
  1810. -------------------------------------------------------------------
  1811.  
  1812.  
  1813.     Computer Clubs and User Groups wishing to add the Simple 
  1814.     Windows package to their disk library may do so in accordance 
  1815.     with the Distribution Restrictions listed below.
  1816.  
  1817.     Limited Distribution License:
  1818.     -----------------------------
  1819.  
  1820.     As the exclusive copyright holder for Simple Windows, Bruce R. 
  1821.     O'Banion authorizes distribution only in accordance with the 
  1822.     following restrictions. 
  1823.  
  1824.     ASP Approved Vendors in good standing are hereby given 
  1825.     permission to distribute Simple Windows package.  Non-ASP 
  1826.     member vendors must request permission prior to distributing 
  1827.     this package.
  1828.     
  1829.     The Simple Windows package is defined as containing all the 
  1830.     material listed in the PACKING.LST text file.  If any files 
  1831.     listed in the PACKING.LST text file, or the PACKING.LST file 
  1832.     itself, are missing, then the package is not complete and 
  1833.     distribution is forbidden.  Please contact us to obtain a
  1834.     complete package suitable for distribution.
  1835.  
  1836.     The Simple Windows package - including all related program 
  1837.     files and documentation files - CANNOT be modified in any way 
  1838.     and must be distributed as a complete package, without 
  1839.     exception.  The PACKING.LST text file contains a list of all 
  1840.     files that are part of the Simple Windows package.
  1841.  
  1842.     Small additions to the package, such as the introductory used 
  1843.     by many shareware disk vendors, are acceptable.
  1844.  
  1845.     No price or other compensation may be charged for the Simple 
  1846.     Windows package.  A distribution fee may be charged for the 
  1847.     cost of the diskette, shipping and handling, as long as the 
  1848.     total (per disk) does not exceed US$10.00 in the U.S. and 
  1849.     Canada, or US$15.00 internationally.
  1850.  
  1851.     Disk Sets & CD-ROMs:
  1852.     ~~~~~~~~~~~~~~~~~~~~
  1853.     The Simple Windows package CANNOT be sold as part of some other 
  1854.     inclusive package.  Nor can it be included in any commercial 
  1855.     software packaging offer, without a written agreement from 
  1856.     Bruce R. O'Banion.
  1857.  
  1858.     ASP Approved Vendors who wish to distribute the Simple Windows 
  1859.     package as part of a collection (such as PsL's MegaDisk set, or 
  1860.     a CD-ROM package) may do so provided that all the other 
  1861.     restrictions are met.
  1862.  
  1863.     Vendors (non-ASP Vendor Members) who wish to distribute the
  1864.     Simple Windows package as part of a collection (such as PsL's 
  1865.     MegaDisk set, or a CD-ROM package) must obtain permission from 
  1866.     Bruce R. O'Banion prior to beginning such a distribution.
  1867.  
  1868.     If you wish to add any of our programs to a CD-ROM or other 
  1869.     collection, please check the release date of the version you 
  1870.     have.  If the version is over twelve (12) months old then 
  1871.     please contact us to ensure that you have the most current 
  1872.     version.  This version was released in October,1996.
  1873.  
  1874.     Disk-of-the-Month (or Subscription) Distribution:
  1875.     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1876.     If you would like to distribute the Simple Windows package as 
  1877.     a Disk-of-the-Month, or as part of a subscription or monthly 
  1878.     service, then the following restrictions apply:
  1879.  
  1880.     You cannot use a Disk-of-the-Month distribution to use up your 
  1881.     inventory of old (out of date) disks.  Only current versions 
  1882.     may be shipped as Disk-of-the-Month disks.
  1883.  
  1884.     The User's Guide may not be reproduced in whole or in part, 
  1885.     using any means, without the written permission of Bruce R. 
  1886.     O'Banion.  In other words, the disk-based documentation may 
  1887.     not be distributed in PRINTED (hardcopy) form.
  1888.  
  1889.     The Simple Windows package cannot be "rented" or "leased" to 
  1890.     others.
  1891.  
  1892.     You may not list any of our products in advertisements, 
  1893.     catalogs, or other literature which describes our products as 
  1894.     "FREE SOFTWARE".  Shareware is "Try-Before-You-Buy" software, 
  1895.     it is not free.
  1896.  
  1897.     Bruce R. O'Banion prohibits the distribution of outdated 
  1898.     versions of the Simple Windows package, without written 
  1899.     permission from Bruce R. O'Banion. If the version you have is 
  1900.     over twelve (12) months old, please contact us to ensure that 
  1901.     you have the most current version.  This version was released 
  1902.     in October, 1996.
  1903.  
  1904.     Licensee shall not use, copy, rent, lease, sell, modify, 
  1905.     decompile, disassemble, otherwise reverse engineer, or transfer 
  1906.     the licensed program except as provided in this agreement.  Any 
  1907.     such unauthorized use shall result in immediate and automatic 
  1908.     termination of this license.
  1909.  
  1910.     All rights not expressly granted here are reserved to Bruce R. 
  1911.     O'Banion. 
  1912. -----------------------------------------------------------------
  1913.                   Distribution Requirements: SYSOPS
  1914. -----------------------------------------------------------------
  1915.  
  1916.     Limited Distribution License:
  1917.     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1918.     As the exclusive copyright holder for Simple Windows, Bruce R.
  1919.     O'Banion authorizes on-line distribution only in accordance 
  1920.     with the following restrictions.  
  1921.  
  1922.     The Simple Windows package is defined as containing all the
  1923.     material listed in the PACKING.LST text file.  If any files
  1924.     listed in the PACKING.LST text file, or the PACKING.LST file
  1925.     itself, are missing, then the package is not complete and
  1926.     distribution is forbidden.  Please contact us to obtain a
  1927.     complete package suitable for distribution.
  1928.  
  1929.     o  The Simple Windows package - including all related program
  1930.        files and documentation files - CANNOT be modified in any
  1931.        way (other than that mentioned in the following paragraph)
  1932.        and must be distributed as a complete package, without
  1933.        exception.  The PACKING.LST text file contains a list of
  1934.        all files that are part of the Simple Windows package.
  1935.  
  1936.     o  Many BBSs customarily add a small text file
  1937.        (advertisement) to each archived file.  This text file
  1938.        describes the BBS and tells people that the file was
  1939.        downloaded from that particular BBS.  Other BBSs add a
  1940.        small one-line message with their BBS name and phone
  1941.        number into the compressed file, which will display when
  1942.        the file is uncompressed.  Either of these methods of
  1943.        mentioning your BBS are acceptable and may be used,
  1944.        provided the program and documentation is otherwise
  1945.        unmodified and complete.
  1946.  
  1947.     o  Bruce R. O'Banion prohibits the distribution of outdated
  1948.        versions of the Simple Windows package, without written
  1949.        permission from Bruce R. O'Banion.  If the version you
  1950.        have obtained is over twelve (12) months old, please
  1951.        contact us to ensure that you have the most current
  1952.        version.
  1953.  
  1954.     o  Licensee shall not use, copy, rent, lease, sell, modify,
  1955.        decompile, disassemble, otherwise reverse engineer, or
  1956.        transfer the licensed program except as provided in this
  1957.        agreement.  Any such unauthorized use shall result in
  1958.        immediate and automatic termination of this license.
  1959.  
  1960.  
  1961.     All rights not expressly granted here are reserved to Bruce R.
  1962.     O'Banion
  1963.     
  1964. ***************** IMPORTANT WARRANTY INFORMATION ****************
  1965.  
  1966.                   Simple Windows#, Version 1.4B
  1967.  
  1968.           *** PLEASE READ THIS INFORMATION CAREFULLY ***
  1969.               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1970.           TRIAL USE (SHAREWARE EVALUATION VERSION) WARRANTY:
  1971.           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1972.    The Shareware evaluation (trial use) version is provided AS IS.
  1973.    Bruce R. O'Banion MAKES NO WARRANTY OF ANY KIND, EXPRESSED OR
  1974.    IMPLIED, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
  1975.    MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
  1976.  
  1977.  
  1978.  
  1979.                REGISTERED VERSION ONLY WARRANTY:
  1980.                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  1981.    Bruce R. O'Banion warrants the physical diskette(s) and physical
  1982.    documentation provided with registered versions to be free of
  1983.    defects in materials and workmanship for a period of ninety days
  1984.    from the date of registration.  If Bruce R. O'Banion receives
  1985.    notification within the warranty period of defects in materials
  1986.    or workmanship, and such notification is determined by Falk Data
  1987.    Systems to be correct, Bruce R. O'Banion will replace the
  1988.    defective diskette(s) or documentation.
  1989.  
  1990.    The entire and exclusive liability and remedy for breach of this
  1991.    Limited Warranty shall be limited to replacement of defective
  1992.    diskette(s) or documentation and shall not include or extend to
  1993.    any claim for or right to recover any other damages, including
  1994.    but not limited to, loss of profit, data, or use of the software
  1995.    or special, incidental, or consequential damages or other 
  1996.    similar claims, even if Bruce R. O'Banion has been specifically 
  1997.    advised of the possibility of such damages. In no event will
  1998.    Bruce R. O'Banion's liability for any damages to you or any 
  1999.    other person ever exceed the lower of suggested list price or 
  2000.    actual price paid for the license to use the software, 
  2001.    regardless of any form of the claim.
  2002.  
  2003.    Bruce R. O'Banion SPECIFICALLY DISCLAIMS ALL OTHER WARRANTIES,
  2004.    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, ANY IMPLIED
  2005.    WARRANTY OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  2006.    PURPOSE.
  2007.  
  2008. *******************************************************************
  2009.                          ASP OMBUDSMAN STATEMENT
  2010. *******************************************************************
  2011.     "This program is produced by a member of the Association
  2012.     of Shareware Professionals (ASP).  ASP wants to make sure
  2013.     that the shareware principle works for you. If you are
  2014.     unable to resolve a shareware-related problem with an ASP
  2015.     member by contacting the member directly, ASP may be able
  2016.     to help. The ASP Ombudsman can help you resolve a dispute
  2017.     or problem with an ASP member, but does not provide
  2018.     technical support for members' products. Please write to
  2019.     the ASP Ombudsman at 545 Grover Road, Muskegon, MI
  2020.     49442-9427 USA, FAX 616-788-2765 or send a Compuserve
  2021.     message via CompuServe Mail to ASP Ombudsman 70007,3536"
  2022. *******************************************************************
  2023.     If you would like to apply for ASP Associate Membership (to 
  2024.     become an ASP Approved Vendor), simply write to the following 
  2025.     address and request a Vendor Membership Application Package:
  2026.  
  2027.     ASP Executive Director
  2028.     545 Grover Road
  2029.     Muskegon, MI  49442-9427
  2030.     U.S.A.
  2031.  
  2032.     or send a CompuServe message via CompuServe MAIL to ASP 
  2033.     Executive Director 72050,1433.  You may also FAX a request to 
  2034.     the ASP Executive Director at 616-788-2765.
  2035.                       
  2036. ****************************************************************
  2037.  
  2038.          NOTE:  sw14b.zip is packaged on this disk using 
  2039.          Info-ZIP's compression utility.  The installation program 
  2040.          uses UnZip to read zip files from the disk.  Info-ZIP's 
  2041.          software (Zip, UnZip and related utilities) is free and 
  2042.          can be obtained as source code or executables from 
  2043.          various bulletin board services and anonymous-ftp sites, 
  2044.          including CompuServe's IBMPRO forum and ftp.uu.net:/pub/
  2045.          archiving/zip/*. 
  2046. ****************************************************************
  2047.   U.S. Government Information:  Use, duplication, or
  2048.   disclosure by the U.S. Government of the computer software
  2049.   and documentation in this package shall be subject to the
  2050.   restricted rights applicable to commercial computer
  2051.   software as set forth in subdivision (b)(3)(ii) of the
  2052.   Rights in Technical Data and Computer Software clause at
  2053.   252.227-7013 (DFARS 52.227-7013).  The
  2054.   Contractor/manufacturer is Simply Soft, 318
  2055.   Oak St. Modesto,CA 95351
  2056. *****************************************************************
  2057.   Please Help Us Serve You Better:
  2058. --------------------------------
  2059.  
  2060.   We would appreciate copies of anything you print regarding Simple 
  2061.   Windows. Please send us a copy of any reviews, articles, catalog 
  2062.   descriptions, or other information you print or distribute 
  2063.   regarding the Simple Windows package.  Thank you for your time 
  2064.   and assistance and for supporting the shareware marketing 
  2065.   concept.
  2066.  
  2067.   Please refer to SIMPWN14.DOC for our mailing address and phone 
  2068.   number.
  2069.  
  2070.   Thank you for your support!
  2071. *******************************************************************
  2072. TURBO C++ 1.0 copyright 1990 Borland International
  2073. TURBO C 2.0 copyright 1987,1988 Borland Inernational
  2074. MS_DOS 5.0 copyright 1987-1991 Microsoft Corp.
  2075.  
  2076. *******************************************************************
  2077.   The attached VENDINFO data record is hereby incorporated by 
  2078.   reference. Any distribution satisfying all the distribution 
  2079.   requirements expressed in that data record is hereby authorized.
  2080.